package com.yang.biz.modular.http.util;

import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import lombok.extern.slf4j.Slf4j;

/**
 * 返回数据统一处理
 *
 * @author: yangjianzhi
 * @version1.0
 */
@Slf4j
public class HttpResponseUtil {
    private final static String SUCCESS_CODE = "200";

    /**
     * 返回数据统一处理
     */
    public static JSONObject getResponseData(String result, String url) {
        JSONObject resultJson = JSONUtil.parseObj(result);
        String code = resultJson.getStr("code", "500");
        if (SUCCESS_CODE.equals(code)) {
            return resultJson.getJSONObject("data");
        }
        log.error("请求地址：" + url);
        log.error("请求错误：" + resultJson.getStr("message"));
        return null;
    }

    /**
     * 返回数据统一处理
     */
    public static JSONArray getResponseDataArr(String result, String url) {
        JSONObject resultJson = JSONUtil.parseObj(result);
        String code = resultJson.getStr("code", "500");
        if (SUCCESS_CODE.equals(code)) {
            return resultJson.getJSONArray("data");
        }
        log.error("请求地址：" + url);
        log.error("请求错误：" + resultJson.getStr("message"));
        return null;
    }

    /**
     * 处理请求结果，如果返回码为200则返回true，否则记录错误信息并返回false
     */
    public static Boolean handleRequestResult(String result, String url) {
        JSONObject resultJson = JSONUtil.parseObj(result);
        String code = resultJson.getStr("code", "500");
        if (SUCCESS_CODE.equals(code)) {
            log.info("message：" + resultJson.getStr("message"));
            return true;
        }
        log.error("请求地址：" + url);
        log.error("请求错误：" + resultJson.getStr("message"));
        return false;
    }
}
